function GetUglyNumber_Solution(index)
{
    // write code here
    // 初始的时候建立一个数组 这里面只有一位元素1
    if(index < 7) return index // 这是特殊情况 n < 7 丑数就是n本身
    var a = [1] 
    let p2 = 0,
        p3 = 0,
        p5 = 0 // 初始化p2p3p5
    // 然后栋第二个丑叔开始计算 知道第n个结束
    for(let i = 2 ;i <= index ; i++){
      var newNum = Math.min(a[p2] * 2 , a[p3] * 3 , a[p5] * 5)// 每次加入的数字应该是 a[p2] * 2 a[p3] * 3 a[p5] * 5 的最小值
      a.push(newNum)
      if(newNum === a[p2] * 2) p2++ // 判断这个数字是由谁产生的 就让谁后移一位 这些情况是并列的
      if(newNum === a[p3] * 3) p3++
      if(newNum === a[p5] * 5) p5++
    }
    return a[a.length - 1]
}
module.exports = {
    GetUglyNumber_Solution : GetUglyNumber_Solution
};